#ifndef COMPA_H_
#define COMPA_H_

#include "../../SAMA_Function.h"

//< 比较类型枚举
typedef enum {
	BIGGER,				//< 大于
	SMALLER,			//< 小于
	EQUAL,				//< 等于
	BIGGER_EQUAL,		//< 大于等于
	SMALL_EQUAL,		//< 小于等于
}COMPAR_TYPE;

/*模块可调参数结构体*/
typedef struct {
	COMPAR_TYPE	type;		//< 比较类型
	float deadstate;		//< 死区
}COMPA_Par_t;


/*模块参数结构体定义*/
struct COMPA_T
{
	Model_Base_t Base;		//< 模块基本参数结构体
	COMPA_Par_t Par;		//< 模块可调参数结构体
};


extern COMPA_T* COMPA_t;

/*函数*/
bool CALCU_SAMA(COMPA)(Model_Base_t* arg, float dt, bool* DI, bool* DO, float* AI, float* AO);	//< SAMA运算函数
int BC_PARA(COMPA)(Model_Base_t* arg, void** Data);												//< 广播SAMA参数变量函数（无参数需要广播的模块直接将BCPara函数设置为NULL即可）
int CHANGE_PAR(COMPA)(Model_Base_t* arg, void** Data);											//< 在线修改模块参数


#endif
